package com.umpay.dto.merAccess.req.register;

import org.hibernate.validator.constraints.NotEmpty;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merAccess.req.CommonReq;

/*******************************************************************
 * description : 子商户入网请求数据
 * @author zhangru
 * @date 2018年10月17日 下午4:51:49
 * @version 1.0
 *******************************************************************/
public class SubMerRegisterReq extends CommonReq {

	@NotEmpty(message = "商户订单号不能为空")
	@Pattern(message = "商户订单号格式不正确")
	private String order_id;//	商户订单号	变长20	商户订单号支持数字、英文字母，其他字符不建议使用  长度4至20位
	
	@NotEmpty(message = "交易日期不能为空")
	@Pattern(message = "交易日期格式不正确")
	private String mer_date;//	交易日期	定长8	商户生成订单的日期，格式YYYYMMDD，类型为字符串	Y
	
	@NotEmpty(message = "子商户编号不能为空")
	@Pattern(message = "子商户编号格式不正确")
	private String sub_mer_id;//	子商户编号	变长20	商户平台给子商户分配的唯一标识，该值必须是商户平台中子商户的真实编号	Y
	
	@NotEmpty(message = "子商户类型不能为空")
	@Pattern(message = "子商户类型格式不正确")
	private String sub_mer_type;//	子商户类型	定长1	1：个人商户	2：个体商户	3：企业商户	Y
	
	@NotEmpty(message = "子商户名称不能为空")
	@Pattern(message = "子商户名称格式不正确")
	private String sub_mer_name	;//子商户名称	变长32	如果传递中文，需确保该字段在传入接口前，编码正确，使用UTF-8编码	Y
	
	@NotEmpty(message = "子商户别名不能为空")
	@Pattern(message = "子商户别名格式不正确")
	private String sub_mer_alias;//	子商户别名	变长32	如果传递中文，需确保该字段在传入接口前，编码正确，使用UTF-8编码	Y
	
	@NotEmpty(message = "证件类型不能为空")
	@Pattern(message = "证件类型格式不正确")
	private String cert_type;//	证件类型	变成2	1：营业执照 	2：统一社会信用代码	3：居民身份证	Y
	
	@NotEmpty(message = "证照号不能为空")
	@Pattern(message = "证照号格式不正确")
	private String cert_id;//	证照号	变长18	cert_type为1: 营业执照号码	cert_type为2:18位信用代码证	cert_type为3: 居民身份证号码	Y
	
	@Pattern(message = "组织机构代码证号格式不正确")
	private String organization_id;//	组织机构代码证号	变长 32	cert_type为1（非三证合一）时必填	N
	
	@Pattern(message = "税务登记证号格式不正确")
	private String tax_registration_id;//	税务登记证号	变长32	cert_type为1（非三证合一）时必填	N
	
	@Pattern(message = "法人姓名格式不正确")
	private String legal_name;//	法人姓名	变长32	cert_type = 1、2时必填  	如果上送中文，需确保该字段在传入接口前，编码正确，使用UTF-8编码 UTF8转字节码-> RSA联动公钥加密->base64编码	N
	
	@Pattern(message = "法人证件类型格式不正确")
	private String identity_type	;//法人证件类型	变长2	cert_type = 1、2时必填	传入固定值： 1：居民身份证	N
	
	@Pattern(message = "法人证件号格式不正确")
	private String identity_id;//	法人证件号	变长256	cert_type = 1、2时必填	用联动的公钥进行RSA加密后用，BASE64(GBK编码)加密该字段	证件类型为身份证时，仅支持18位身份证号	N
	
	@Pattern(message = "联系人格式不正确")
	private String contacts_name;//	联系人	变长 32	cert_type = 1、2时必填	如果传递中文，需确保该字段在传入接口前，编码正确，使用UTF-8编码 UTF8转字节码-> RSA联动公钥加密->base64编码	N
	
	@NotEmpty(message = "手机号不能为空")
	@Pattern(message = "手机号格式不正确")
	private String mobile_id;//	手机号	定长11	手机号	Y
	
	@Pattern(message = "邮箱地址格式不正确")
	private String email;//	邮箱地址	变长64		N
	
	@Pattern(message = "联系地址格式不正确")
	private String address;//	联系地址	变长256		N
	
	@Pattern(message = "异步通知地址格式不正确")
	private String notify_url;//	异步通知地址	变长128	交易成功后，会按照此地址将交易结果以后台的方式发送到商户平台；如果请求中不传则不给商户平台进行异步通知	N

	public String getOrder_id() {
		return order_id;
	}

	public void setOrder_id(String order_id) {
		this.order_id = order_id;
	}

	public String getMer_date() {
		return mer_date;
	}

	public void setMer_date(String mer_date) {
		this.mer_date = mer_date;
	}

	public String getSub_mer_id() {
		return sub_mer_id;
	}

	public void setSub_mer_id(String sub_mer_id) {
		this.sub_mer_id = sub_mer_id;
	}

	public String getSub_mer_type() {
		return sub_mer_type;
	}

	public void setSub_mer_type(String sub_mer_type) {
		this.sub_mer_type = sub_mer_type;
	}

	public String getSub_mer_name() {
		return sub_mer_name;
	}

	public void setSub_mer_name(String sub_mer_name) {
		this.sub_mer_name = sub_mer_name;
	}

	public String getSub_mer_alias() {
		return sub_mer_alias;
	}

	public void setSub_mer_alias(String sub_mer_alias) {
		this.sub_mer_alias = sub_mer_alias;
	}

	public String getCert_type() {
		return cert_type;
	}

	public void setCert_type(String cert_type) {
		this.cert_type = cert_type;
	}

	public String getCert_id() {
		return cert_id;
	}

	public void setCert_id(String cert_id) {
		this.cert_id = cert_id;
	}

	public String getOrganization_id() {
		return organization_id;
	}

	public void setOrganization_id(String organization_id) {
		this.organization_id = organization_id;
	}

	public String getTax_registration_id() {
		return tax_registration_id;
	}

	public void setTax_registration_id(String tax_registration_id) {
		this.tax_registration_id = tax_registration_id;
	}

	public String getLegal_name() {
		return legal_name;
	}

	public void setLegal_name(String legal_name) {
		this.legal_name = legal_name;
	}

	public String getIdentity_type() {
		return identity_type;
	}

	public void setIdentity_type(String identity_type) {
		this.identity_type = identity_type;
	}

	public String getIdentity_id() {
		return identity_id;
	}

	public void setIdentity_id(String identity_id) {
		this.identity_id = identity_id;
	}

	public String getContacts_name() {
		return contacts_name;
	}

	public void setContacts_name(String contacts_name) {
		this.contacts_name = contacts_name;
	}

	public String getMobile_id() {
		return mobile_id;
	}

	public void setMobile_id(String mobile_id) {
		this.mobile_id = mobile_id;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getNotify_url() {
		return notify_url;
	}

	public void setNotify_url(String notify_url) {
		this.notify_url = notify_url;
	}

	@Override
	public String toString() {
		return "SubMerRegisterReq [order_id=" + order_id + ", mer_date=" + mer_date + ", sub_mer_id=" + sub_mer_id
		        + ", sub_mer_type=" + sub_mer_type + ", sub_mer_name=" + sub_mer_name + ", sub_mer_alias="
		        + sub_mer_alias + ", cert_type=" + cert_type + ", cert_id=" + cert_id + ", organization_id="
		        + organization_id + ", tax_registration_id=" + tax_registration_id + ", legal_name=" + legal_name
		        + ", identity_type=" + identity_type + ", identity_id=" + identity_id + ", contacts_name="
		        + contacts_name + ", mobile_id=" + mobile_id + ", email=" + email + ", address=" + address
		        + ", notify_url=" + notify_url + "]";
	}
	
}
